package com.gitee.wsl.db.entry

sealed class LocalItem {
    abstract val id: String
    abstract val title: String
    abstract val thumbnailUrl: String?
}

/**
 * @Immutable
 * data class Album(
 *     @Embedded
 *     val album: AlbumEntity,
 *     @Relation(
 *         entity = ArtistEntity::class,
 *         entityColumn = "id",
 *         parentColumn = "id",
 *         associateBy = Junction(
 *             value = AlbumArtistMap::class,
 *             parentColumn = "albumId",
 *             entityColumn = "artistId"
 *         )
 *     )
 *     val artists: List<ArtistEntity>,
 * ) : LocalItem() {
 *     override val id: String
 *         get() = album.id
 *     override val title: String
 *         get() = album.title
 *     override val thumbnailUrl: String?
 *         get() = album.thumbnailUrl
 * }
 */